// import type 一般是针对导入类型使用的
import type { User } from '@/types/user'
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 工作中使用pinia也是直接去官网找例子然后修改
// pinia官网https://pinia.vuejs.org/zh/introduction.html
// 组合式api写法,自己去看官网解释
export const useCounterStore = defineStore(
  'cp-user',
  () => {
    // 定义变量用户user
    // 1.因为加入了ts类型推导,所以我们变量 参数必须添加一个类型.
    // user有自定义类型User和undefined两种类型所以添加类型时需将两种类都加上,<User> 是 <User | undefined>的缩写
    const user = ref<User>()
    // 设置user的方法
    // 2. 函数的参数也要添加类型
    const setUser = (u: User) => (user.value = u)
    // 删除user的方法
    const delUser = () => (user.value = undefined)
    return { user, setUser, delUser }
  },
  {
    persist: true
  }
)
